Presently, digital continuous media (CM) are well established as an integral part of many applications. Common applications facilitate distribution of content material prepared off-line, e.g. movies or TV programs for communication over the Internet. There also is an increasing interest in such communication for a number of different applications areas, such as business communications (e.g., teleconferencing), social interactions, entertainment, and more. However, current implementations of streaming media systems suffer from a number of limitations, particularly for such live applications. For example, due to processing or bandwidth constraints, the picture resolution and quality is limited. Consequently, the small rendering of the remote participants does not convey a good sense of presence in the local environment. Current technological trends point towards continued improvements in broadband bandwidth availability and computing resources. As a result, high quality live audio and video streaming are becoming feasible. The Integrated Media Systems Center (IMSC) at the University of Southern California explores such applications in the education, communication and entertainment spaces in addition to pursuing basic research.
Two of the main characteristics of digital continuous media (CM) are that (1) they require real time storage and retrieval, and (2) they require high bandwidths and space. Over the last decade, a considerable amount of research has focused on the efficient retrieval of such media for many concurrent users, for communication of streaming content material prepared and stored in non-real time (typically off-line). Algorithms to optimize issues such as data placement, disk scheduling, admission control, transmission smoothing, etc., for efficient retrieval have been reported in the literature.
Almost without exception these prior research efforts assumed that the CM streams were readily available as pre-existing files and could be loaded onto the servers offline, without the real time constraints that the complementary stream retrieval required. This is certainly a reasonable assumption for many applications where the multimedia streams are produced offline (e.g., movies, commercials, educational lectures, etc.). In such an environment, streams may originally be captured onto tape or film. Sometimes the tapes store analog data (e.g., VHS video) and sometimes they store digital data (e.g., DV camcorders).
However, the current technological trends are such that more and more sensor devices (e.g., cameras) can directly produce digital data streams. Furthermore, some of these new devices are network-capable either via wired (SDI, Firewire) or wireless (Bluetooth, IEEE 802.11x) connections. Hence, the need arises to capture and store these streams with an efficient data stream recorder that can handle both recording and playback of many streams simultaneously and provide a central repository for all data.
The applications for such a recorder start at the low end with small, personal systems. For example, the “digital hub” in the living room envisioned by several companies will in the future go beyond recording and playing back a single stream as is currently done by TiVo and ReplayTV units. Multiple camcorders, receivers, televisions, and audio amplifiers will all connect to the digital hub to either store or retrieve data streams. At the higher end, movie production will move to digital cameras and storage devices. For example, George Lucas' “Star Wars: Episode II Attack of the Clones” was shot entirely with high-definition digital cameras. Additionally, there are many sensor networks that produce continuous streams of data. For example, NASA continuously receives data from space probes. Earthquake and weather sensors produce data streams as do web sites and telephone systems. Systems capable of concurrent recording and playback/distribution of high quality streams will also support a variety of real-time interactive applications, such as videophone and video conferencing.
For large scale data stream recorders, a goal is to produce a unified architecture that integrates multi-stream recording and retrieval in a coherent paradigm. Existing multi-disk continuous media server designs can largely be classified into two different paradigms: (1) Data blocks are striped in a round-robin manner across the disks and blocks are retrieved in cycles or rounds on behalf of all streams. (2) Data blocks are placed randomly across all disks and the data retrieval is based on a deadline for each block. The first paradigm attempts to guarantee the retrieval or storage of all data. It is often referred to as deterministic. With the second paradigm, by its very nature of randomly assigning blocks to disks, no absolute guarantees can be made. For example, a disk may briefly be overloaded, resulting in one or more missed deadlines. This approach is often called statistical.
One might at first be tempted to declare the deterministic approach intuitively superior. However, the statistical approach has many advantages. For example, the resource utilization achieved can be much higher because the deterministic approach must use worst case values for all parameters such as seek times, disk transfer rates, and stream data rates, whereas the statistical approach may use average values. Moreover, the statistical approach can be implemented on widely available platforms such as Windows or Linux which do not provide hard real time guarantees. It also lends itself very naturally to supporting a variety of different media types that require different data rates (both constant (CBR) or variable (VBR)) as well as interactive functions such as pause, fast-forward and fast-rewind. Finally, it has been shown that the performance of a system based on the statistical method is on par with that of a deterministic system.
For these reasons, further discussion here will focus largely on the statistical approach. It has been shown that the probability of missed deadlines in such a system follows roughly an exponential curve. Hence, up to a certain system utilization (say 80%) a very low stream hiccup probability can be achieved. By the same token it is very important to know how every additional stream will affect the system utilization. Consequently, there is a need for a comprehensive admission control algorithm that enables an accurate calculation of the stream hiccup probability and system utilization.
The design goals for a CM storage and retrieval architecture can be summarized as follows:                1) Provide support for the real time recording of multiple, concurrent streams that are of various media types. For example, streams may be received at different average bit rates and be encoded with constant (CBR) or variable bit rate (VBR) techniques.        2) Provide support for the synchronized recording of multiple streams.        3) Be a modular, scalable architecture.        4) Use unified algorithms (e.g., data placement and scheduling) that can accommodate both recording and playback simultaneously in any combination with low latency.        
Several issues have been addressed by themselves in academic research. For example, the purpose of the Multicast Multimedia Conference Recorder (MMCR) project was to capture and play back multicast (MBone) sessions. The authors for that project focused more on the higher level aspects such as indexing and browsing the available sessions, while assuming only a small number of concurrent sessions. The MMCR literature did not specifically develop a scalable, high performance architecture where resources (memory, disk space and bandwidth) need to be carefully scheduled.
There are also commercial systems available.
1. Streaming media systems (e.g., Microsoft's Windows Media, Apple's QuickTime, RealNetworks' RealOne). These systems are optimized for streaming of previously (offline) stored content. Some of them also allow real time live streaming (i.e., forwarding with no recording). They are designed for multi-user access and multiple media types. They cannot usually take advantage of a cluster of server nodes.
2. Personal Video Recorders (PVR), for example the TiVo and ReplayTV models and the SnapStream software. These systems allow real time recording and playback of standard broadcast quality video. Some of the limitations are that they are designed as single-user systems. Furthermore, they are optimized for a single media type (NTSC/PAL/SECAM video with two channels of audio). Local playback is supported and with newer models file sharing is enabled over a network. However, they do not provide streaming playback over a network.
3. Editing systems and broadcast servers. These systems are the professional cousins of the PVRs. They are used for the production and distribution of video content (e.g., to TV stations) and they are designed to interface via professional I/O standards (usually not Ethernet). Their use is for local environments, not distributed streaming setups. Most of the time they handle only a few media types and one (or a few) streams at a time. Their special purpose hardware and elaborate control interfaces to other studio equipment places them into a price category that makes them not cost-effective for use as a more general purpose stream recorder.
As indicated, none of these categories of available systems provides the full functionality that would be desirable. Each one of them only provides a subset of the desired functionalities.
The Integrated Media Systems Center (IMSC) at the University of Southern California developed a high-performance data recording system, as described in: Roger Zimmermann, Kun Fu and Wei-Shinn Ku, Design of a Large Scale Data Stream Recorder, Integrated Media Systems Center, University of Southern California, presented at the 5th International Conference on Enterprise Information Systems (ICES 2003), Apr. 23-26, 2003. However, even that system did not provide the full functionality with the desired level of performance and scalability.
In that proposed system, the data stream recorder receives the data at a single receiver unit, which provides admission control for new streams and optional time stamping of packets. Of particular note, the one receiver also provides packet-to-storage-node assignment and routing as well as storage node coordination and communication. The one receiver distributes the incoming data to multiple storage nodes. Each storage node manages one or more local disk storage devices. For incoming packets from the receiver, the storage node performs such functions as packet-to-block aggregation, memory buffer management, block data placement on each storage device and real time disk head scheduling. Outgoing packets for communication of retrieved content apparently go directly from the storage nodes to the wide area network, and thence to the receiving client device(s). For example, an added function performed as a distributed function by the storage nodes is the retrieval scheduling for each outgoing stream, which is assembled from content data retrieved from devices at multiple storage nodes.
The use of a central receiver to process all incoming stream creates a bottleneck at that receiver. Although the architecture can be scaled to store more data by adding storage nodes, it is difficult to address issues of bandwidth and session management at the receiver, when attempting to handle increased numbers of incoming streams. The coordination of scheduling across multiple storage nodes, for each outgoing stream, also may present issues as the system scales up to handle more traffic.